""" Python Character Mapping Codec generated from 'CP875.TXT' with gencodec.py.

Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
(c) Copyright 2000 Guido van Rossum.

"""#"

import codecs

### Codec APIs

class Codec(codecs.Codec):

    def encode(self,input,errors='strict'):

        return codecs.charmap_encode(input,errors,encoding_map)
        
    def decode(self,input,errors='strict'):

        return codecs.charmap_decode(input,errors,decoding_map)

class StreamWriter(Codec,codecs.StreamWriter):
    pass
        
class StreamReader(Codec,codecs.StreamReader):
    pass

### encodings module API

def getregentry():

    return (Codec().encode,Codec().decode,StreamReader,StreamWriter)

### Decoding Map

decoding_map = codecs.make_identity_dict(range(256))
decoding_map.update({
	0x0004: 0x009c,	# CONTROL
	0x0005: 0x0009,	# HORIZONTAL TABULATION
	0x0006: 0x0086,	# CONTROL
	0x0007: 0x007f,	# DELETE
	0x0008: 0x0097,	# CONTROL
	0x0009: 0x008d,	# CONTROL
	0x000a: 0x008e,	# CONTROL
	0x0014: 0x009d,	# CONTROL
	0x0015: 0x0085,	# CONTROL
	0x0016: 0x0008,	# BACKSPACE
	0x0017: 0x0087,	# CONTROL
	0x001a: 0x0092,	# CONTROL
	0x001b: 0x008f,	# CONTROL
	0x0020: 0x0080,	# CONTROL
	0x0021: 0x0081,	# CONTROL
	0x0022: 0x0082,	# CONTROL
	0x0023: 0x0083,	# CONTROL
	0x0024: 0x0084,	# CONTROL
	0x0025: 0x000a,	# LINE FEED
	0x0026: 0x0017,	# END OF TRANSMISSION BLOCK
	0x0027: 0x001b,	# ESCAPE
	0x0028: 0x0088,	# CONTROL
	0x0029: 0x0089,	# CONTROL
	0x002a: 0x008a,	# CONTROL
	0x002b: 0x008b,	# CONTROL
	0x002c: 0x008c,	# CONTROL
	0x002d: 0x0005,	# ENQUIRY
	0x002e: 0x0006,	# ACKNOWLEDGE
	0x002f: 0x0007,	# BELL
	0x0030: 0x0090,	# CONTROL
	0x0031: 0x0091,	# CONTROL
	0x0032: 0x0016,	# SYNCHRONOUS IDLE
	0x0033: 0x0093,	# CONTROL
	0x0034: 0x0094,	# CONTROL
	0x0035: 0x0095,	# CONTROL
	0x0036: 0x0096,	# CONTROL
	0x0037: 0x0004,	# END OF TRANSMISSION
	0x0038: 0x0098,	# CONTROL
	0x0039: 0x0099,	# CONTROL
	0x003a: 0x009a,	# CONTROL
	0x003b: 0x009b,	# CONTROL
	0x003c: 0x0014,	# DEVICE CONTROL FOUR
	0x003d: 0x0015,	# NEGATIVE ACKNOWLEDGE
	0x003e: 0x009e,	# CONTROL
	0x003f: 0x001a,	# SUBSTITUTE
	0x0040: 0x0020,	# SPACE
	0x0041: 0x0391,	# GREEK CAPITAL LETTER ALPHA
	0x0042: 0x0392,	# GREEK CAPITAL LETTER BETA
	0x0043: 0x0393,	# GREEK CAPITAL LETTER GAMMA
	0x0044: 0x0394,	# GREEK CAPITAL LETTER DELTA
	0x0045: 0x0395,	# GREEK CAPITAL LETTER EPSILON
	0x0046: 0x0396,	# GREEK CAPITAL LETTER ZETA
	0x0047: 0x0397,	# GREEK CAPITAL LETTER ETA
	0x0048: 0x0398,	# GREEK CAPITAL LETTER THETA
	0x0049: 0x0399,	# GREEK CAPITAL LETTER IOTA
	0x004a: 0x005b,	# LEFT SQUARE BRACKET
	0x004b: 0x002e,	# FULL STOP
	0x004c: 0x003c,	# LESS-THAN SIGN
	0x004d: 0x0028,	# LEFT PARENTHESIS
	0x004e: 0x002b,	# PLUS SIGN
	0x004f: 0x0021,	# EXCLAMATION MARK
	0x0050: 0x0026,	# AMPERSAND
	0x0051: 0x039a,	# GREEK CAPITAL LETTER KAPPA
	0x0052: 0x039b,	# GREEK CAPITAL LETTER LAMDA
	0x0053: 0x039c,	# GREEK CAPITAL LETTER MU
	0x0054: 0x039d,	# GREEK CAPITAL LETTER NU
	0x0055: 0x039e,	# GREEK CAPITAL LETTER XI
	0x0056: 0x039f,	# GREEK CAPITAL LETTER OMICRON
	0x0057: 0x03a0,	# GREEK CAPITAL LETTER PI
	0x0058: 0x03a1,	# GREEK CAPITAL LETTER RHO
	0x0059: 0x03a3,	# GREEK CAPITAL LETTER SIGMA
	0x005a: 0x005d,	# RIGHT SQUARE BRACKET
	0x005b: 0x0024,	# DOLLAR SIGN
	0x005c: 0x002a,	# ASTERISK
	0x005d: 0x0029,	# RIGHT PARENTHESIS
	0x005e: 0x003b,	# SEMICOLON
	0x005f: 0x005e,	# CIRCUMFLEX ACCENT
	0x0060: 0x002d,	# HYPHEN-MINUS
	0x0061: 0x002f,	# SOLIDUS
	0x0062: 0x03a4,	# GREEK CAPITAL LETTER TAU
	0x0063: 0x03a5,	# GREEK CAPITAL LETTER UPSILON
	0x0064: 0x03a6,	# GREEK CAPITAL LETTER PHI
	0x0065: 0x03a7,	# GREEK CAPITAL LETTER CHI
	0x0066: 0x03a8,	# GREEK CAPITAL LETTER PSI
	0x0067: 0x03a9,	# GREEK CAPITAL LETTER OMEGA
	0x0068: 0x03aa,	# GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
	0x0069: 0x03ab,	# GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
	0x006a: 0x007c,	# VERTICAL LINE
	0x006b: 0x002c,	# COMMA
	0x006c: 0x0025,	# PERCENT SIGN
	0x006d: 0x005f,	# LOW LINE
	0x006e: 0x003e,	# GREATER-THAN SIGN
	0x006f: 0x003f,	# QUESTION MARK
	0x0070: 0x00a8,	# DIAERESIS
	0x0071: 0x0386,	# GREEK CAPITAL LETTER ALPHA WITH TONOS
	0x0072: 0x0388,	# GREEK CAPITAL LETTER EPSILON WITH TONOS
	0x0073: 0x0389,	# GREEK CAPITAL LETTER ETA WITH TONOS
	0x0074: 0x00a0,	# NO-BREAK SPACE
	0x0075: 0x038a,	# GREEK CAPITAL LETTER IOTA WITH TONOS
	0x0076: 0x038c,	# GREEK CAPITAL LETTER OMICRON WITH TONOS
	0x0077: 0x038e,	# GREEK CAPITAL LETTER UPSILON WITH TONOS
	0x0078: 0x038f,	# GREEK CAPITAL LETTER OMEGA WITH TONOS
	0x0079: 0x0060,	# GRAVE ACCENT
	0x007a: 0x003a,	# COLON
	0x007b: 0x0023,	# NUMBER SIGN
	0x007c: 0x0040,	# COMMERCIAL AT
	0x007d: 0x0027,	# APOSTROPHE
	0x007e: 0x003d,	# EQUALS SIGN
	0x007f: 0x0022,	# QUOTATION MARK
	0x0080: 0x0385,	# GREEK DIALYTIKA TONOS
	0x0081: 0x0061,	# LATIN SMALL LETTER A
	0x0082: 0x0062,	# LATIN SMALL LETTER B
	0x0083: 0x0063,	# LATIN SMALL LETTER C
	0x0084: 0x0064,	# LATIN SMALL LETTER D
	0x0085: 0x0065,	# LATIN SMALL LETTER E
	0x0086: 0x0066,	# LATIN SMALL LETTER F
	0x0087: 0x0067,	# LATIN SMALL LETTER G
	0x0088: 0x0068,	# LATIN SMALL LETTER H
	0x0089: 0x0069,	# LATIN SMALL LETTER I
	0x008a: 0x03b1,	# GREEK SMALL LETTER ALPHA
	0x008b: 0x03b2,	# GREEK SMALL LETTER BETA
	0x008c: 0x03b3,	# GREEK SMALL LETTER GAMMA
	0x008d: 0x03b4,	# GREEK SMALL LETTER DELTA
	0x008e: 0x03b5,	# GREEK SMALL LETTER EPSILON
	0x008f: 0x03b6,	# GREEK SMALL LETTER ZETA
	0x0090: 0x00b0,	# DEGREE SIGN
	0x0091: 0x006a,	# LATIN SMALL LETTER J
	0x0092: 0x006b,	# LATIN SMALL LETTER K
	0x0093: 0x006c,	# LATIN SMALL LETTER L
	0x0094: 0x006d,	# LATIN SMALL LETTER M
	0x0095: 0x006e,	# LATIN SMALL LETTER N
	0x0096: 0x006f,	# LATIN SMALL LETTER O
	0x0097: 0x0070,	# LATIN SMALL LETTER P
	0x0098: 0x0071,	# LATIN SMALL LETTER Q
	0x0099: 0x0072,	# LATIN SMALL LETTER R
	0x009a: 0x03b7,	# GREEK SMALL LETTER ETA
	0x009b: 0x03b8,	# GREEK SMALL LETTER THETA
	0x009c: 0x03b9,	# GREEK SMALL LETTER IOTA
	0x009d: 0x03ba,	# GREEK SMALL LETTER KAPPA
	0x009e: 0x03bb,	# GREEK SMALL LETTER LAMDA
	0x009f: 0x03bc,	# GREEK SMALL LETTER MU
	0x00a0: 0x00b4,	# ACUTE ACCENT
	0x00a1: 0x007e,	# TILDE
	0x00a2: 0x0073,	# LATIN SMALL LETTER S
	0x00a3: 0x0074,	# LATIN SMALL LETTER T
	0x00a4: 0x0075,	# LATIN SMALL LETTER U
	0x00a5: 0x0076,	# LATIN SMALL LETTER V
	0x00a6: 0x0077,	# LATIN SMALL LETTER W
	0x00a7: 0x0078,	# LATIN SMALL LETTER X
	0x00a8: 0x0079,	# LATIN SMALL LETTER Y
	0x00a9: 0x007a,	# LATIN SMALL LETTER Z
	0x00aa: 0x03bd,	# GREEK SMALL LETTER NU
	0x00ab: 0x03be,	# GREEK SMALL LETTER XI
	0x00ac: 0x03bf,	# GREEK SMALL LETTER OMICRON
	0x00ad: 0x03c0,	# GREEK SMALL LETTER PI
	0x00ae: 0x03c1,	# GREEK SMALL LETTER RHO
	0x00af: 0x03c3,	# GREEK SMALL LETTER SIGMA
	0x00b0: 0x00a3,	# POUND SIGN
	0x00b1: 0x03ac,	# GREEK SMALL LETTER ALPHA WITH TONOS
	0x00b2: 0x03ad,	# GREEK SMALL LETTER EPSILON WITH TONOS
	0x00b3: 0x03ae,	# GREEK SMALL LETTER ETA WITH TONOS
	0x00b4: 0x03ca,	# GREEK SMALL LETTER IOTA WITH DIALYTIKA
	0x00b5: 0x03af,	# GREEK SMALL LETTER IOTA WITH TONOS
	0x00b6: 0x03cc,	# GREEK SMALL LETTER OMICRON WITH TONOS
	0x00b7: 0x03cd,	# GREEK SMALL LETTER UPSILON WITH TONOS
	0x00b8: 0x03cb,	# GREEK SMALL LETTER UPSILON WITH DIALYTIKA
	0x00b9: 0x03ce,	# GREEK SMALL LETTER OMEGA WITH TONOS
	0x00ba: 0x03c2,	# GREEK SMALL LETTER FINAL SIGMA
	0x00bb: 0x03c4,	# GREEK SMALL LETTER TAU
	0x00bc: 0x03c5,	# GREEK SMALL LETTER UPSILON
	0x00bd: 0x03c6,	# GREEK SMALL LETTER PHI
	0x00be: 0x03c7,	# GREEK SMALL LETTER CHI
	0x00bf: 0x03c8,	# GREEK SMALL LETTER PSI
	0x00c0: 0x007b,	# LEFT CURLY BRACKET
	0x00c1: 0x0041,	# LATIN CAPITAL LETTER A
	0x00c2: 0x0042,	# LATIN CAPITAL LETTER B
	0x00c3: 0x0043,	# LATIN CAPITAL LETTER C
	0x00c4: 0x0044,	# LATIN CAPITAL LETTER D
	0x00c5: 0x0045,	# LATIN CAPITAL LETTER E
	0x00c6: 0x0046,	# LATIN CAPITAL LETTER F
	0x00c7: 0x0047,	# LATIN CAPITAL LETTER G
	0x00c8: 0x0048,	# LATIN CAPITAL LETTER H
	0x00c9: 0x0049,	# LATIN CAPITAL LETTER I
	0x00ca: 0x00ad,	# SOFT HYPHEN
	0x00cb: 0x03c9,	# GREEK SMALL LETTER OMEGA
	0x00cc: 0x0390,	# GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
	0x00cd: 0x03b0,	# GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
	0x00ce: 0x2018,	# LEFT SINGLE QUOTATION MARK
	0x00cf: 0x2015,	# HORIZONTAL BAR
	0x00d0: 0x007d,	# RIGHT CURLY BRACKET
	0x00d1: 0x004a,	# LATIN CAPITAL LETTER J
	0x00d2: 0x004b,	# LATIN CAPITAL LETTER K
	0x00d3: 0x004c,	# LATIN CAPITAL LETTER L
	0x00d4: 0x004d,	# LATIN CAPITAL LETTER M
	0x00d5: 0x004e,	# LATIN CAPITAL LETTER N
	0x00d6: 0x004f,	# LATIN CAPITAL LETTER O
	0x00d7: 0x0050,	# LATIN CAPITAL LETTER P
	0x00d8: 0x0051,	# LATIN CAPITAL LETTER Q
	0x00d9: 0x0052,	# LATIN CAPITAL LETTER R
	0x00da: 0x00b1,	# PLUS-MINUS SIGN
	0x00db: 0x00bd,	# VULGAR FRACTION ONE HALF
	0x00dc: 0x001a,	# SUBSTITUTE
	0x00dd: 0x0387,	# GREEK ANO TELEIA
	0x00de: 0x2019,	# RIGHT SINGLE QUOTATION MARK
	0x00df: 0x00a6,	# BROKEN BAR
	0x00e0: 0x005c,	# REVERSE SOLIDUS
	0x00e1: 0x001a,	# SUBSTITUTE
	0x00e2: 0x0053,	# LATIN CAPITAL LETTER S
	0x00e3: 0x0054,	# LATIN CAPITAL LETTER T
	0x00e4: 0x0055,	# LATIN CAPITAL LETTER U
	0x00e5: 0x0056,	# LATIN CAPITAL LETTER V
	0x00e6: 0x0057,	# LATIN CAPITAL LETTER W
	0x00e7: 0x0058,	# LATIN CAPITAL LETTER X
	0x00e8: 0x0059,	# LATIN CAPITAL LETTER Y
	0x00e9: 0x005a,	# LATIN CAPITAL LETTER Z
	0x00ea: 0x00b2,	# SUPERSCRIPT TWO
	0x00eb: 0x00a7,	# SECTION SIGN
	0x00ec: 0x001a,	# SUBSTITUTE
	0x00ed: 0x001a,	# SUBSTITUTE
	0x00ee: 0x00ab,	# LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
	0x00ef: 0x00ac,	# NOT SIGN
	0x00f0: 0x0030,	# DIGIT ZERO
	0x00f1: 0x0031,	# DIGIT ONE
	0x00f2: 0x0032,	# DIGIT TWO
	0x00f3: 0x0033,	# DIGIT THREE
	0x00f4: 0x0034,	# DIGIT FOUR
	0x00f5: 0x0035,	# DIGIT FIVE
	0x00f6: 0x0036,	# DIGIT SIX
	0x00f7: 0x0037,	# DIGIT SEVEN
	0x00f8: 0x0038,	# DIGIT EIGHT
	0x00f9: 0x0039,	# DIGIT NINE
	0x00fa: 0x00b3,	# SUPERSCRIPT THREE
	0x00fb: 0x00a9,	# COPYRIGHT SIGN
	0x00fc: 0x001a,	# SUBSTITUTE
	0x00fd: 0x001a,	# SUBSTITUTE
	0x00fe: 0x00bb,	# RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
	0x00ff: 0x009f,	# CONTROL
})

### Encoding Map

encoding_map = {}
for k,v in decoding_map.items():
    encoding_map[v] = k
